#pragma once
#include "Item.h"

namespace Fysics
{
	class SolidBody : public Item
	{
	public:
		glm::vec3 m_Rotation;
		glm::vec3 m_Scale;
	protected:
		bool m_Visible;
	public:
		SolidBody(
			glm::vec3 Position = glm::vec3(0, 0, 0),
			glm::vec3 Rotation = glm::vec3(0, 0, 0),
			glm::vec3 Scale = glm::vec3(1, 1, 1),
			bool isVisible = false
		);

		virtual ~SolidBody() {}

		void SetRotation(glm::vec3 rotation);
		void SetScale(glm::vec3 scale);
		void SetRotX(float x);
		void SetRotY(float y);
		void SetRotZ(float z);
		void SetScaleX(float x);
		void SetScaleY(float y);
		void SetScaleZ(float z);

		inline glm::vec3 GetRotation() const { return m_Rotation; }
		inline glm::vec3 GetScale() const { return m_Scale; }

		inline ObjectType GetType() const override { return ObjectType::type_SolidBody; }
		virtual glm::mat4 GetModelMatrix() const override;
		virtual void Draw() override;

		virtual void ShowEditPanel() override;
	};
}